#ifndef CC_DLINK_MSG_QUEUE_H
#define CC_DLINK_MSG_QUEUE_H

/****	Public header file	*/
#include "./cc_type.h"

/****	define */
#define CFG_DLMSG_QUEUE
#ifdef CFG_DLMSG_QUEUE

typedef struct CC_Double_Link_Msg_Queue tDLMsgQueue;

extern void DLMsgQueue_ShowObj(tDLMsgQueue* pObj);
extern tDLMsgQueue* DLMsgQueue_Create(uint32_t ItemNum);

extern uint32_t DLMsgQueue_Write(tDLMsgQueue* pObj,uint32_t PkgLen, uint8_t* pPkg);
extern uint32_t DLMsgQueue_Read(tDLMsgQueue* pObj,uint32_t RBufSz, uint8_t* pRBuf);
extern uint32_t DLMsgQueue_GetNextPkgSz(tDLMsgQueue* pObj);
extern uint32_t DLMsgQueue_Reset(tDLMsgQueue* pObj);

extern uint32_t DLMsgQueue_Peek(tDLMsgQueue* pObj,uint32_t RBufSz, uint8_t* pRBuf);
extern uint32_t DLMsgQueue_DorpOne(tDLMsgQueue* pObj);
#endif 




#endif